package br.unifor.ads.pjappfinanceiro_dkp.ui;

import java.awt.Color;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.LineBorder;

import br.unifor.ads.pjappfinanceiro.business.FornecedorBusiness;
import br.unifor.ads.pjappfinanceiro.entity.Fornecedores;
import br.unifor.ads.pjappfinanceiro.exceptions.BusinessException;
import br.unifor.ads.pjappfinanceiro_dkp.manager.FornecedorManager;

public class FrmCadFornecedor extends JPanel {
	private JTextField edtNome;
	private JTextField edtEndereco;
	private JTextField edtCEP;
	private JTextField edtEstado;
	private JTextField edtBairro;
	private JTextField edtCidade;
	private JTextField edtFone;
	private JTextField edtFax;
	private JTextField edtCNPJ;
	private JTextField edtIE;
	private JTextField edtEmail;
	private JTextField edtAgencia;
	private JTextField edtConta;
	private JTextField edtBanco;
	private JTextField edtBuscar;
	private FornecedorManager fornecedorManager = new FornecedorManager();
	private FornecedorBusiness fornecedorBusiness = new FornecedorBusiness();
	private JTextField edtId;
	

	/**
	 * Create the panel.
	 */
	public FrmCadFornecedor() {
		setLayout(null);
		
		JButton btnInserir = new JButton("Inserir");
		btnInserir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Fornecedores fornecedor = new Fornecedores();
				fornecedor.setNome(edtNome.getText());
				fornecedor.setEndereco(edtEndereco.getText());
				fornecedor.setBairro(edtBairro.getText());
				fornecedor.setCidade(edtCidade.getText());
				fornecedor.setEstado(edtEstado.getText());
				fornecedor.setCep(edtCEP.getText());
				fornecedor.setFone(edtFone.getText());
				fornecedor.setFax(edtFax.getText());
				fornecedor.setCnpj(edtCNPJ.getText());
				fornecedor.setInscEst(edtIE.getText());
				fornecedor.setEmail(edtEmail.getText());
				fornecedor.setBanco(edtBanco.getText());
				fornecedor.setAgencia(edtAgencia.getText());
				fornecedor.setConta(edtConta.getText());
				
				
				try {
					JOptionPane.showMessageDialog(null, fornecedorManager.inserirFornecedor(fornecedor));
				} catch (HeadlessException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (BusinessException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
		});
		btnInserir.setBounds(22, 11, 89, 23);
		add(btnInserir);
		
		JButton btnAlterar = new JButton("Alterar");
		btnAlterar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				
				if (edtId.getText() != null) {
					Fornecedores fornecedor = new Fornecedores();
					fornecedor.setId(Integer.parseInt(edtId.getText()));
					fornecedor.setNome(edtNome.getText());
					fornecedor.setEndereco(edtEndereco.getText());
					fornecedor.setBairro(edtBairro.getText());
					fornecedor.setCidade(edtCidade.getText());
					fornecedor.setEstado(edtEstado.getText());
					fornecedor.setCep(edtCEP.getText());
					fornecedor.setFone(edtFone.getText());
					fornecedor.setFax(edtFax.getText());
					fornecedor.setCnpj(edtCNPJ.getText());
					fornecedor.setInscEst(edtIE.getText());
					fornecedor.setEmail(edtEmail.getText());
					fornecedor.setBanco(edtBanco.getText());
					fornecedor.setAgencia(edtAgencia.getText());
					fornecedor.setConta(edtConta.getText());

					
					try {
						JOptionPane.showMessageDialog(null,	fornecedorManager.updateFornecedor(fornecedor));
					} catch (HeadlessException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					} catch (BusinessException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
				
			}
		});
		btnAlterar.setBounds(114, 11, 89, 23);
		add(btnAlterar);
		
		JButton btnExcluir = new JButton("Excluir");
		btnExcluir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					JOptionPane.showMessageDialog(null, fornecedorManager.deleteFornecedor(Integer.parseInt(edtId.getText())));
					limparTela();
				} catch (HeadlessException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (NumberFormatException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (BusinessException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		});
		btnExcluir.setBounds(207, 11, 89, 23);
		add(btnExcluir);
		
		JButton btnSair = new JButton("Sair");
		btnSair.setBounds(296, 11, 89, 23);
		add(btnSair);
		
		JLabel label = new JLabel("Nome:");
		label.setBounds(22, 45, 112, 14);
		add(label);
		
		edtNome = new JTextField();
		edtNome.setColumns(10);
		edtNome.setBounds(22, 63, 468, 20);
		add(edtNome);
		
		JLabel lblEndereo = new JLabel("Endereço:");
		lblEndereo.setBounds(22, 90, 112, 14);
		add(lblEndereo);
		
		edtEndereco = new JTextField();
		edtEndereco.setColumns(10);
		edtEndereco.setBounds(22, 105, 282, 20);
		add(edtEndereco);
		
		JLabel lblCep = new JLabel("CEP:");
		lblCep.setBounds(317, 90, 64, 14);
		add(lblCep);
		
		edtCEP = new JTextField();
		edtCEP.setColumns(10);
		edtCEP.setBounds(317, 104, 89, 20);
		add(edtCEP);
		
		JLabel lblEstado = new JLabel("Estado:");
		lblEstado.setBounds(417, 90, 64, 14);
		add(lblEstado);
		
		edtEstado = new JTextField();
		edtEstado.setColumns(10);
		edtEstado.setBounds(416, 105, 74, 20);
		add(edtEstado);
		
		JLabel lblBairro = new JLabel("Bairro:");
		lblBairro.setBounds(22, 136, 64, 14);
		add(lblBairro);
		
		edtBairro = new JTextField();
		edtBairro.setColumns(10);
		edtBairro.setBounds(22, 152, 144, 20);
		add(edtBairro);
		
		JLabel lblCidade = new JLabel("Cidade:");
		lblCidade.setBounds(178, 136, 64, 14);
		add(lblCidade);
		
		edtCidade = new JTextField();
		edtCidade.setColumns(10);
		edtCidade.setBounds(178, 152, 155, 20);
		add(edtCidade);
		
		JLabel lblTelefone = new JLabel("Telefone:");
		lblTelefone.setBounds(343, 135, 64, 14);
		add(lblTelefone);
		
		edtFone = new JTextField();
		edtFone.setColumns(10);
		edtFone.setBounds(343, 152, 147, 20);
		add(edtFone);
		
		JLabel lblFax = new JLabel("Fax:");
		lblFax.setBounds(22, 183, 64, 14);
		add(lblFax);
		
		edtFax = new JTextField();
		edtFax.setColumns(10);
		edtFax.setBounds(22, 199, 144, 20);
		add(edtFax);
		
		JLabel lblCnpj = new JLabel("CNPJ:");
		lblCnpj.setBounds(178, 183, 64, 14);
		add(lblCnpj);
		
		edtCNPJ = new JTextField();
		edtCNPJ.setColumns(10);
		edtCNPJ.setBounds(178, 199, 155, 20);
		add(edtCNPJ);
		
		JLabel lblInscEstadual = new JLabel("Inscrição Estadual");
		lblInscEstadual.setBounds(342, 183, 148, 14);
		add(lblInscEstadual);
		
		edtIE = new JTextField();
		edtIE.setColumns(10);
		edtIE.setBounds(343, 199, 147, 20);
		add(edtIE);
		
		JLabel lblEmail = new JLabel("E-Mail:");
		lblEmail.setBounds(22, 230, 64, 14);
		add(lblEmail);
		
		edtEmail = new JTextField();
		edtEmail.setColumns(10);
		edtEmail.setBounds(22, 246, 468, 20);
		add(edtEmail);
		
		JLabel lblAgncia = new JLabel("Agência:");
		lblAgncia.setBounds(22, 277, 64, 14);
		add(lblAgncia);
		
		edtAgencia = new JTextField();
		edtAgencia.setColumns(10);
		edtAgencia.setBounds(22, 295, 86, 20);
		add(edtAgencia);
		
		JLabel lblConta = new JLabel("Conta:");
		lblConta.setBounds(114, 277, 64, 14);
		add(lblConta);
		
		edtConta = new JTextField();
		edtConta.setColumns(10);
		edtConta.setBounds(114, 295, 86, 20);
		add(edtConta);
		
		JLabel lblBanco = new JLabel("Banco:");
		lblBanco.setBounds(207, 277, 64, 14);
		add(lblBanco);
		
		edtBanco = new JTextField();
		edtBanco.setColumns(10);
		edtBanco.setBounds(207, 295, 283, 20);
		add(edtBanco);
		
		JPanel panel = new JPanel();
		panel.setLayout(null);
		panel.setBorder(new LineBorder(new Color(0, 0, 0), 4));
		panel.setBounds(22, 337, 478, 102);
		add(panel);
		
		JLabel lblCnpj_1 = new JLabel("CNPJ:");
		lblCnpj_1.setBounds(51, 34, 64, 17);
		panel.add(lblCnpj_1);
		
		edtBuscar = new JTextField();
		edtBuscar.setColumns(10);
		edtBuscar.setBounds(86, 32, 262, 20);
		panel.add(edtBuscar);
		
		JButton button = new JButton("Buscar");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				
				Fornecedores fornecedor =  new Fornecedores();
				try {
					fornecedor = fornecedorBusiness.localizarFornecedorPorCNPJ(edtBuscar.getText());

					edtId.setText(String.valueOf(fornecedor.getId()));
					edtNome.setText(fornecedor.getNome());
					edtEndereco.setText(fornecedor.getEndereco());
					edtBairro.setText(fornecedor.getBairro());
					edtCidade.setText(fornecedor.getCidade());
					edtEstado.setText(fornecedor.getEstado());
					edtCEP.setText(fornecedor.getCep());
					edtFone.setText(fornecedor.getFone());
					edtFax.setText(fornecedor.getFax());
					edtCNPJ.setText(fornecedor.getCnpj());
					edtIE.setText(fornecedor.getInscEst());
					edtEmail.setText(fornecedor.getEmail());
					edtBanco.setText(fornecedor.getBanco());
					edtConta.setText(fornecedor.getConta());
					edtAgencia.setText(fornecedor.getAgencia());
					

				} catch (BusinessException e3) {

					e3.printStackTrace();
				}
				
			}
		});
		button.setBounds(358, 31, 89, 23);
		panel.add(button);
		
		edtId = new JTextField();
		edtId.setBounds(437, 42, 53, 20);
		edtId.setVisible(false);
		add(edtId);
		edtId.setColumns(10);

	}
	
	
	public void limparTela() {
		edtId.setText("");
		edtNome.setText("");
		edtEndereco.setText("");
		edtBairro.setText("");
		edtCidade.setText("");
		edtEstado.setText("");
		edtCEP.setText("");
		edtFone.setText("");
		edtFax.setText("");
		edtCNPJ.setText("");
		edtIE.setText("");
		edtEmail.setText("");
		edtBanco.setText("");
		edtConta.setText("");
		edtAgencia.setText("");

	}

	
}
